// If condition, 6-9, is added to add scope to this function to 1a1(original) partition function. size_t partition(int * arr, int l, int r) { int i = l + 1, j = r; int pivot = arr[l]; if(l == r && data[pivot] <= data[r]) { return pivot; } while (i <= j) { while (pivot < arr[j]) j--; if (j == l) return l; while (i < r && pivot > arr[i]) i++; if (i == j) break; if (i < j) swap(&arr[i], &arr[j]); } swap(&arr[l], &arr[j]); return j; }